package com.ecoolex.ying.space.ws;

import java.util.List;

import com.ecoolex.framework.common.exception.BizException;
import com.ecoolex.framework.common.pojo.Page;
import com.ecoolex.framework.common.pojo.Pagination;
import com.ecoolex.framework.common.pojo.Sorting;
import com.ecoolex.ying.space.entity.EstateProjectActivity;
import com.ecoolex.ying.space.entity.EstateProjectActivityCoupon;
import com.ecoolex.ying.space.entity.EstateProjectActivityCouponPackage;
import com.ecoolex.ying.space.entity.EstateProjectActivityGoods;
import com.ecoolex.ying.space.entity.EstateProjectActivityGoodsCategory;
import com.ecoolex.ying.space.entity.EstateProjectActivityHouseModel;
import com.ecoolex.ying.space.entity.EstateProjectActivityHouseModelItems;
import com.ecoolex.ying.space.entity.EstateProjectActivityHouseModelItemsGoods;
import com.ecoolex.ying.space.pojo.AddEstateProjectActivityGoodsDTO;
import com.ecoolex.ying.space.pojo.AddEstateProjectActivityHouseModelItemsDTO;

public interface EstateProjectActivityService {

	EstateProjectActivity get(Integer projectId);
	
	Pagination<EstateProjectActivity> query(Boolean online,Sorting[] sorts,Page page);
	
	EstateProjectActivity getOnline(Integer projectId);
	
	Pagination<EstateProjectActivity> queryOnline(Page page);
	
	EstateProjectActivity add(EstateProjectActivity record,String createUser) throws BizException;
	
	EstateProjectActivity edit(EstateProjectActivity record,String updateUser) throws BizException;
	
	EstateProjectActivityHouseModel addModel(EstateProjectActivityHouseModel record,
								List<AddEstateProjectActivityHouseModelItemsDTO> itemsDTOList,String createUser) throws BizException;
	
	EstateProjectActivityHouseModel editModel(EstateProjectActivityHouseModel record,
								List<AddEstateProjectActivityHouseModelItemsDTO> itemsDTOList,String updateUser) throws BizException;
	
	void deleteEstateProjectActivityHouseModel(EstateProjectActivityHouseModel record,String updateUser);
	
	void delete(EstateProjectActivity record,String updateUser) throws BizException;
	
	void online(EstateProjectActivity record,String updateUser) throws BizException;
	
	void offline(EstateProjectActivity record,String updateUser) throws BizException;
	
	List<EstateProjectActivityHouseModel> modelList(Integer projectId);
	
	List<EstateProjectActivityHouseModelItems> itemsList(Integer modelId);
	
	EstateProjectActivityGoods getEstateProjectActivityGoods(Integer activityGoodsId);
	
	Pagination<EstateProjectActivityGoods> queryEstateProjectActivityGoods(String activityName,Integer activityCategoryId,Boolean online,Sorting[] sorts,Page page);
	
	Pagination<EstateProjectActivityGoods> queryEstateProjectActivityGoodsForPrimaryCategory(String activityName,Integer activityCategoryId,Boolean online,Sorting[] sorts,Page page);
	
	Pagination<EstateProjectActivityGoods> queryEstateProjectActivityGoodsByCategoryId(Integer activityCategoryId,Page page);
	
	EstateProjectActivityGoods addEstateProjectActivityGoods(AddEstateProjectActivityGoodsDTO record,String createUser) throws BizException;
	
	EstateProjectActivityGoods editEstateProjectActivityGoods(EstateProjectActivityGoods record,String updateUser) throws BizException;
	
	void deleteEstateProjectActivityGoods(EstateProjectActivityGoods record,String updateUser) throws BizException;
	
	void onlineEstateProjectActivityGoods(EstateProjectActivityGoods record,String updateUser) throws BizException;
	
	void offlineEstateProjectActivityGoods(EstateProjectActivityGoods record,String updateUser) throws BizException;

	EstateProjectActivityCouponPackage getCouponPackage(Integer id);
	
	Pagination<EstateProjectActivityCouponPackage> queryCouponPackage(String code,Integer status,Sorting[] sorts,Page page);
	
	EstateProjectActivityCoupon getEstateProjectActivityCoupon(Integer couponId);
	
	Pagination<EstateProjectActivityCoupon> queryEstateProjectActivityCoupon(Sorting[] sorts,Page page);
	
	EstateProjectActivityCoupon getEstateProjectActivityCouponOnline(Integer couponId);
	
	Pagination<EstateProjectActivityCoupon> queryEstateProjectActivityCouponOnline(Page page);
	
	EstateProjectActivityCoupon addEstateProjectActivityCoupon(EstateProjectActivityCoupon record,String createUser);
	
	EstateProjectActivityCoupon editEstateProjectActivityCoupon(EstateProjectActivityCoupon record,String updateUser);
	
	void delEstateProjectActivityCoupon(EstateProjectActivityCoupon record,String updateUser);
	
	void onlineEstateProjectActivityCoupon(EstateProjectActivityCoupon record,String updateUser);
	
	void offlineEstateProjectActivityCoupon(EstateProjectActivityCoupon record,String updateUser);
	
	Pagination<EstateProjectActivityHouseModel> modelList(Integer projectId,Page page);
	
	Pagination<EstateProjectActivityHouseModel> modelList(Integer projectId,Sorting[] sorts,Page page);
	
	EstateProjectActivityHouseModel getEstateProjectActivityHouseModel(Integer modelId);
	
	List<EstateProjectActivityGoods> listByItemId(Integer itemId);
	
	List<EstateProjectActivityGoods> listByItemIdOnline(Integer itemId);
	
	EstateProjectActivityGoods getByPickGoodsIdAndActivityCategoryId(Integer pickGoodsId,Integer activityCategoryId);
	
	EstateProjectActivityGoodsCategory getEstateProjectActivityGoodsCategory(Integer activityCategoryId);
	
	Pagination<EstateProjectActivityGoodsCategory> queryEstateProjectActivityGoodsCategory(Integer projectId,String activityName,Boolean online,Integer level,Sorting[] sorts,Page page);
	
	List<EstateProjectActivityGoodsCategory> childrenCategory(Integer activityCategoryId);
	
	EstateProjectActivityGoodsCategory addEstateProjectActivityGoodsCategory(EstateProjectActivityGoodsCategory record,String createUser) throws BizException;
	
	EstateProjectActivityGoodsCategory editEstateProjectActivityGoodsCategory(EstateProjectActivityGoodsCategory record,String updateUser) throws BizException;
	
	void delEstateProjectActivityGoodsCategory(EstateProjectActivityGoodsCategory record,String updateUser) throws BizException;
	
	void onlineEstateProjectActivityGoodsCategory(EstateProjectActivityGoodsCategory record,String updateUser) throws BizException;
	
	void offlineEstateProjectActivityGoodsCategory(EstateProjectActivityGoodsCategory record,String updateUser) throws BizException;

	EstateProjectActivityGoodsCategory getEstateProjectActivityGoodsCategoryOnline(Integer activityCategoryId);
	
	Pagination<EstateProjectActivityGoodsCategory> queryEstateProjectActivityGoodsCategoryOnline(Integer parentCategoryId,Page page);

	Pagination<EstateProjectActivityCouponPackage> couponPackageList(Integer status,Integer userId,Page page);
	
	EstateProjectActivityCouponPackage couponPackage(Integer id,Integer userId);
	
	EstateProjectActivityCouponPackage getEstateProjectActivityCouponPackageByCode(String code,Integer userId);
	
	EstateProjectActivityCouponPackage getEstateProjectActivityCouponPackageByCode(String code);

	List<EstateProjectActivityHouseModelItemsGoods> listByStorageId(String storageId);
}
